package com.bookstore.dao;

import com.bookstore.bean.ShoppingCartItem;
import com.bookstore.bean.Book;
import com.bookstore.web.CriteriaBook;
import com.bookstore.web.Page;

import java.util.Collection;
import java.util.List;

/**
 * Created by Admin on 2016/8/11.
 */
public interface BookDao {
    /**
     * 根据id 获取指定 Book 对象
     * @param id
     * @return
     */
     Book getBook(int id);

    /**
     * 根据书名返回相同的记录数
     * @param title
     * @return
     */
    long getCountWithTitle(String title);

    /**
     * 根据传入的CriteriaBook 对象返回对应的 Page 对象
     * @param cb
     * @return
     */
     Page<Book> getPage(CriteriaBook cb);

    /**
     * 根据传入的CriteriaBook 对象返回对应的 记录数
     * @param cb
     * @return
     */
     long getTotalBookNumber(CriteriaBook cb);

    /**
     * 根据传入的CriteriaBook 和 pageSize 返回当前页对应的List
     * @param cb
     * @param pageSize
     * @return
     */
     List<Book> getPageList(CriteriaBook cb, int pageSize);

    /**
     * 返回指定id 的book 的storeNumber 字段的值
     * @param id
     * @return
     */
     int getStoreNumber(Integer id);

     void batchUpdateStoreNumberAndSalesAmount(
             Collection<ShoppingCartItem> items);

     void save(Book book);
}
